#include<iostream>
#include<pthread.h>
#include<unistd.h>

using namespace std;

// 测试线程退出接口pthread_exit()：谁调用谁退出

// 工作线程的入口函数
void* pthread_start(void* arg)
{
    int count = 3;
    while(count--)
    {
        // 工作线程死循环不退出
        cout << "I'm a work thread!" << endl;
        sleep(1);
    }
    // 调用退出接口
    pthread_exit(NULL);
    // 若成功退出，后面代码该线程不会执行
    while(1)
    {
        cout << "work thread still run, pthread_exit() Error!" << endl;
        sleep(1);
    }
}

int main()
{
    //1.创建一个工作线程
    pthread_t thread;
    int ret = pthread_create(&thread, NULL, pthread_start, NULL);
    if(ret < 0)
    {
        cout << "pthread_create Error!" << endl;
        return 0;
    }

    //2.主线程循环不退出，观察线程信息
    while(1)
    {
        cout << "I'm a main thread!" << endl;
        sleep(1);
    }

    return 0;
}
